package com.hyd.tweet.twitter.command;

import com.hyd.tweet.util.StringUtils;
import twitter4j.TwitterException;

import java.util.Arrays;
import java.util.List;

/**
 * 发推
 *
 * @author yiding.he
 */
public class SendStatusCommand extends Command {

    @Override
    public List<String> processCommand() throws TwitterException {
        String status = StringUtils.combine(arguments, 0);
        String[] statuses;

        if (status.length() > 1000) {
            return Arrays.asList("——您的推文太长太长，请不要超过1000个字"); // 这还能叫发推吗？ >_<

        } else if (status.length() > 140) {
            statuses = split(status);

        } else {
            statuses = new String[]{status};
        }

        for (String _status : statuses) {
            twitter.updateStatus(_status);
        }

        String message = "——" + statuses.length + "条消息已发送";
        if (!user.isReceivingMessage()) {
            message += "（您目前不在自动接收消息状态）";
        }
        return Arrays.asList(message + "。");
    }

    private String[] split(String string) {
        return StringUtils.splitTweet(string);
    }
}
